<script setup>
// TODO: 编辑
import axios from 'axios'
import { ref } from 'vue'
// 弹框开关
//准备form 初始化表格数据
const form=ref({
  name:'',
  place:'',
  id:''
})

const dialogVisible = ref(false)
//row:拿到了数据  函数内部的代码将 row 对象的属性值赋给 form 对象的相应属性，以便在表单中显示当前要编辑的内容。
const open=(row)=>{
  form.value.name=row.name
  form.value.place=row.place
  form.value.id=row.id
  dialogVisible.value=true //点击打开 onEdit
}
//将 open 函数暴露，使得父组件可以通过 editRef.open() 调用它。
defineExpose({
  open
})
const emit=defineEmits(['on-updata'])
const onUpdate=async()=>{
  //1.收集表单数据 调用接口
 await axios.patch(`/edit/${form.value.id}`, {
  name:form.value.name,
  place:form.value.place,

})
//2.关闭弹窗
 dialogVisible.value=false
 //3.通知父组件做列表更新
 emit('on-updata')
}
</script>

<template>
  <el-dialog v-model="dialogVisible" title="编辑" width="400px">
    <el-form label-width="50px">
      <el-form-item label="姓名">
        <el-input placeholder="请输入姓名" v-model="form.name" />
      </el-form-item>
      <el-form-item label="籍贯">
        <el-input placeholder="请输入籍贯"  v-model="form.place" />
      </el-form-item>
    </el-form>
    <template #footer>
      <span class="dialog-footer">
        <el-button @click="dialogVisible = false">取消</el-button>
        <el-button type="primary" @click="onUpdate">确认</el-button>
      </span>
    </template>
  </el-dialog>
</template>

<style scoped>
.el-input {
  width: 290px;
}
</style>
